Systems And Methods For Providing Haptic Effects

ABSTRACT

Systems and methods for providing haptic effects are disclosed. For example, one disclosed system includes a computer-readable medium having program code, the program code including program code defining a haptic widget. The haptic widget includes program code defining a haptic effect; program code defining an interface for the haptic widget; program code for receiving, via the interface, a configuration of at least one parameter of the haptic widget; program code for receiving, via the interface, a play command for the haptic effect; and program code for outputting, via the interface, a signal configured to cause the haptic effect, the signal based on the at least one parameter and in response to the play command.

CROSS-REFERENCES TO RELATED APPLICATION

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 13/092,484, filed Apr. 22, 2011 and entitled“Systems and Methods for Providing Haptic Effects,” and to U.S.Provisional Patent Application No. 61/327,450, filed Apr. 23, 2010,entitled “Systems and Methods for Use of Haptic Effects in Promotionaland Other Communications,” the entirety of both of which are herebyincorporated by reference.

FIELD OF THE INVENTION

The present application relates generally to providing haptic effectsand more particularly relates to providing haptic effects using hapticwidgets or associated with brands or advertisements.

BACKGROUND

Haptically-enabled devices can be used to enhance user experiences withvarious devices. However, there remains room for improvement in the useof haptics. For example, a typical use of haptics may include the use ofhaptic feedback to simulate the feel of an object or allow realisticphysical interactions with a virtual environment. However, haptics mayprovide benefits unrelated to the accurate representation of a physicalobject in a haptic context.

SUMMARY

Embodiments of the present invention provide systems and methods forproviding haptic effects. For example, in one embodiment, acomputer-readable medium comprises program code, the program codecomprising program code defining a haptic widget. The haptic widgetcomprises program code defining a haptic effect; program code definingan interface for the haptic widget; program code for receiving, via theinterface, a configuration of at least one parameter of the hapticwidget; program code for receiving, via the interface, a play commandfor the haptic effect; and program code for outputting, via theinterface, a signal configured to cause the haptic effect, the signalbased on the at least one parameter and in response to the play command.

This illustrative embodiment is mentioned not to limit or define theinvention, but rather to provide an example to aid understandingthereof. Illustrative embodiments are discussed in the DetailedDescription, which provides further description of the invention.Advantages offered by various embodiments of this invention may befurther understood by examining this specification.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, aspects, and advantages of the presentinvention are better understood when the following Detailed Descriptionis read with reference to the accompanying drawings, wherein:

FIGS. 1A-D show systems for providing haptic effects according toembodiments of the present invention;

FIGS. 2A-D show haptic widgets according to embodiments of the presentinvention;

FIGS. 3A-C and 4 show systems for providing brand-specific hapticeffects according to embodiments of the present invention;

FIG. 5 shows a system for providing haptic effects based on aninterstitial advertisement according to one embodiment of the presentinvention;

FIGS. 6-9 show systems for providing positive and negative hapticeffects according to one embodiment of the present invention;

FIGS. 10-11 shows a system for providing haptic effects in anadvertisement according to one embodiment of the present invention;

FIG. 12 shows a diagram of different types of haptic effects usableaccording to some embodiments of the present invention;

FIGS. 13-14 show systems for providing positive and negative hapticeffects in an advertisement according to one embodiment of the presentinvention; and

FIGS. 15-17 show methods for providing haptic effects according to someembodiments of the present invention.

DETAILED DESCRIPTION

Reference will now be made in detail to various and alternativeillustrative embodiments and to the accompanying drawings. Each exampleis provided by way of explanation, and not as a limitation. It will beapparent to those skilled in the art that modifications and variationscan be made. For instance, features illustrated or described as part ofone embodiment may be used on another embodiment to yield a stillfurther embodiment. Thus, it is intended that this disclosure includemodifications and variations.

Illustrative Device for Providing Haptic Feedback

One illustrative embodiment of the present invention comprises aportable computing device 10 as shown in FIG. 1A. The device 10 has ahousing 12 and a touch-sensitive input device 14 incorporated into adisplay. In addition, two buttons 16, 18 are provided on the housing.Within the device 10, but not shown, are a processor and a memory forexecuting software code. In addition, a plurality of actuators aredisposed within the device for outputting haptic effects to the device10, the touch-sensitive input device 14, or the buttons 16, 18.

The device 10 shown in FIG. 1 is configured to provide haptic effects ina number of different circumstances. For example, when the device 10 ispowered on, a logo for the device's manufacturer or service provider isdisplayed. In addition, a brand-specific haptic effect is output (or“played”) by one or more of the actuators. For example, ElectronicsCompany Inc. (ECI) (a fictitious company for this example) may providethe device 10 and configure the device 10 to display ECI's logo whilebooting. In addition, ECI incorporates program code within the device'smemory to cause the device's actuators to play a haptic effect that isassociated with ECI's brand, referred to as a haptic brand orbrand-specific haptic effect. Thus, a user of ECI devices that playECI's brand-specific haptic effect may come to associate thebrand-specific haptic effect with ECI.

Further, once the device 10 has booted, it is configured to provide avariety of haptic effects based on user input or content displayed onthe screen. For example, the touch-sensitive input device 14 is amulti-touch touch-sensitive input device capable of detecting multiplesubstantially simultaneous contacts and provide position information foreach contact. Thus, based on a user's interaction with thetouch-sensitive input device 14, the device's processor is capable ofgenerating haptic effects based on the multi-touch inputs. The device 14is further capable of determining gestures based on the multi-touchinputs and generating haptic effects based on such gestures.

During operation, the device 10 is capable of executing programs, suchas an operating system or a web browser. Each of these programs may havevarious haptic functionalities associated with it. In variousembodiments disclosed herein, the haptic functionality may beincorporated into well-defined interface elements referred to as“widgets.” Haptic widgets may be associated with various operatingsystem functions, icons shown on the display, or different GUI elementsof the various programs available to be executed. The widgets mayprovide well-defined haptic functionality that can be easily associatedwith or disassociated from various aspects of the operating system orapplications to more easily provide haptic feedback functionality.

In addition to interacting with an operating system or variousapplications, a user may view content provided by such applications. Forexample, a user can use the device 10 to execute a web browser fornavigating to various websites on the World Wide Web (the “Web”). Someof these websites display advertisements or brands for variouscompanies. Device 10 is configured to output brand-specific hapticeffects for brands that are displayed on the display, such as within awebsite. In addition, advertisements incorporated within variousapplications or websites may cause the device 10 to output hapticeffects, for example to attract the attention of the user to theadvertisement or to encourage the user to interact with theadvertisement. In addition, the device 10 may output different hapticeffects based on a user's interaction with an advertisement or a brand.

In this illustrative embodiment, if a user interacts with anadvertisement, the device 10 outputs positive haptic effects designed toencourage the user to continue to interact with the advertisement, tointeract with advertisements from the same company again in the future,or to reward the user for having interacted with the advertisement.Alternatively, the device 10 outputs negative haptic effects if the userattempts to close or hide an advertisement to discourage the user fromperforming such actions or, if the user completes the action, todiscourage the user from performing such actions in the future.

In addition a user may interact with a brand or logo that is shown onthe display, such as within a web page. For example, a user may touch orperform a gesture on an image associated with a brand, which causes thedevice 10 to output a haptic effect associated with the gesture or thebrand. Or by touching the image, performing gestures on or towards theimage, or otherwise interacting with the image, it may cause the imageto change its appearance, such as by executing an animation of theimage. During such an animation, the device 10 outputs haptic effectscorresponding to different portions of the animation, such as footstepsif the animated image walks on the screen or vibrations corresponding toan orange being peeled. In addition, the user may be able to interactwith the image by performing gestures, including multi-touch gestures,on the image to “push” or “pull” or “twist” the image, resulting indifferent displayed and haptic responses.

Thus, the device 10 provides a richer haptic experience for a user byproviding haptic widgets and interactive brand and advertisingexperiences.

Referring now to FIG. 1B, FIG. 1B shows an illustrative system 100 forproviding one or more haptic effects. Particularly, in this example,system 100 comprises a computing device 101 featuring a processor orprocessors 102 interfaced with other hardware via bus 106. The processormay include a CPU or other specialized processors, such as a GPSreceiver, digital signal processor, or others that are more fullydescribed below. A memory 104, which can comprise any suitable tangiblecomputer-readable medium such as RAM, ROM, EEPROM, or the like, isconfigured to store program components that configure operation of thecomputing device. In this example, computing device 101 further includesone or more network interface devices 110, input/output (I/O) interfacecomponents 112, and additional storage 114.

Different embodiments of the system 100 shown in FIG. 1B may beconfigured in different ways. For example, in one embodiment, thecomponents of system 100 may be entirely disposed within a singlehousing, such as within a cell phone, a handheld PDA, a tablet computer,or a laptop computer. In another embodiment, the components of system100 may be disposed within a plurality of housings, such as in a desktopcomputer with a separate display or displays and input device(s).

Network device(s) 110 can represent any components that facilitate anetwork connection. Examples include, but are not limited to, wiredinterfaces such as Ethernet, USB, IEEE 1394, and/or wireless interfacessuch as IEEE 802.11, Bluetooth, or radio interfaces for accessingcellular telephone networks (e.g., transceiver/antenna for accessing aCDMA, GSM, UMTS, or other mobile communications network).

I/O components 112 may be used to facilitate connection to devices suchas a one or more displays, keyboards, mice, speakers, microphones,and/or other hardware used to input data or output data. Storage 114represents nonvolatile storage such as magnetic, optical, or otherstorage media included in device 101.

System 100 further includes a touch surface 116, which is in thisexample integrated into device 101. Touch surface 116 represents anysurface that is configured to sense tactile input of a user. One or moresensors 108 are configured to detect a touch in a touch area when anobject contacts a touch surface and provide appropriate data for use byprocessor 102. Any suitable number, type, or arrangement of sensors canbe used. For example, resistive and/or capacitive sensors may beembedded in touch surface 116 and used to determine the location of atouch and other information, such as touch pressure. As another example,optical sensors may be used to determine the touch position.

In one embodiment, a sensor is configured to detect movements andchanges in orientation of the system. Part or all the sensor or aplurality of sensors, may be located internal or external to the deviceand may be contacted by a user. The sensor can comprise a gyroscopicsensor capable of detecting motion along three translational axes and inrotation about the three translational axes. However, in otherembodiments, other suitable sensors may be employed, such as one or moreaccelerometers for detecting translational or rotational movement alongor about one or more axes. Another suitable sensor may comprise areceiver for receiving input from an external source, such as a light orradio source for determining a position of the device, a rotary velocitysensor, light sensor, pressure sensor, texture sensor, camera,microphone, or other type of sensor. The sensor(s) may be used todetermine movement of the device and/or other manipulations of thedevice for use in controlling the device, selecting options, etc.

In this example, an actuator 118 in communication with processor 102 andis coupled to touch surface 116. In some embodiments, actuator 118 isconfigured to output a haptic effect varying a coefficient of frictionof the touch surface in response to a haptic signal. Additionally oralternatively, actuator 118 may provide haptic effects that move thetouch surface in a controlled manner. Some haptic effects may utilize anactuator coupled to a housing of the device, and some haptic effects mayuse multiple actuators in sequence and/or in concert. For example, thecoefficient of friction can be varied by vibrating the surface atdifferent frequencies. Different combinations/sequences of variance canbe used to simulate the feeling of a texture. For example, the touchinterface may include a polymorphic surface whose micro and/or macrosurface features can be configured or changed dynamically. Other hapticeffects may be provided completely independently of the surface, such asvibrotactile effects provided using a rotating motor, linear resonantactuator, or other actuator(s) coupled to the device body.

Although a single actuator 118 is shown here, embodiments may usemultiple actuators of the same or different type. For example, apiezoelectric actuator is used in some embodiments to displace some orall of touch surface 116 and/or another portion of the device verticallyand/or horizontally at ultrasonic frequencies. In some embodiments,multiple actuators such as eccentric rotating mass motors and linearresonant actuators can be used alone or in concert to provide differenttextures, friction variances, and other haptic effects. Other examplesof suitable actuators include electric motors, electro-magneticactuators, voice coils, electroactive polymers, shape memory alloys,solenoids, microfluidic actuators, and/or electrostatic ormagnetostrictive actuators, which may be used alone or in combinationwith actuators of the same or different types.

Although several haptic effects are discussed along with use of anactuator to provide outputs, some haptic effects are generated byaltering responses by the device to haptic inputs, with the hapticeffect comprising, for example, a change in the response of a device totouch inputs, gestures, or manipulation.

Turning to memory 104, exemplary program components 124, 126, and 128are depicted to illustrate how a device can be configured in someembodiments to provide haptic effects. In this example, a detectionmodule 124 configures processor 102 to monitor touch surface 116 viasensor(s) 108 to determine a position of a touch or multiplesubstantially simultaneous touches or to otherwise determine an event orcondition calling for a haptic effect. For example, module 124 maysample sensor 108 in order to track the presence or absence of a touchand, if a touch is present, to track the location, path, velocity,acceleration, pressure and/or other characteristics of the touch ortouches over time. As another example, module 124 may determine that anadvertisement is in progress and provide haptic effects keyed toactivity occurring in the advertisement and/or in response to userinteraction (or lack thereof) with the advertisement. As a furtherexample, a position sensor may detect changes in the device location,inclination, etc. and process such changes as an input for use ininteracting with the advertisement or other content.

Haptic effect determination module 126 represents a program componentthat analyzes data regarding touch characteristics or operationalconditions or events to select a haptic effect to generate. For example,in some embodiments, an input gesture comprising a multi-touch input ora sequence of one or more touches may be recognized and correlated toone or more haptic effects. As another example, some or all of the areaof touch surface 116 may be mapped to a graphical user interface.Different haptic effects may be selected based on the location of atouch in order to simulate the presence of a feature by varying thefriction of touch surface 116, providing a vibration, and/or othereffect(s) so that the feature is “felt” when a correspondingrepresentation of the feature is seen in the interface. However, hapticeffects may be provided via touch surface 116 even if a correspondingelement is not displayed in the interface (e.g., a haptic effect may beprovided if a boundary in the interface is crossed, even if the boundaryis not displayed).

Haptic effect generation module 128 represents programming that causesprocessor 102 to generate and transmit a haptic signal to actuator(s)118 to generate the selected haptic effect or to otherwise provide ahaptic effect by adjusting device responses to haptic inputs. Forexample, generation module 128 may access stored waveforms or commandsto send to actuator 118. As another example, haptic effect generationmodule 128 may utilize signal processing algorithms to generate anappropriate signal to send to actuator(s) 118. As a further example, adesired texture may be indicated along with target coordinates for thetexture and an appropriate waveform sent to one or more vibrotactileactuators to generate appropriate displacement of the surface (and/orother device components) to provide the texture.

In this example, local program components are used to determine andgenerate the haptic effect. However, embodiments include those thatutilize a remote resource. For example, a web page may include hapticeffects included in accordance with aspects of the present subjectmatter. Additionally or alternatively, haptic effects may be provided atone device in response to communication with another computing device.

A touch surface may or may not overlay (or otherwise correspond to) adisplay, depending on the particular configuration of a computingsystem. In FIG. 1C, an external view of a computing system 100B isshown. Computing device 101 includes a touch-enabled display 116 thatcombines a touch surface and a display of the device. The touch surfacemay correspond to the display exterior or one or more layers of materialabove the actual display components. FIG. 1D illustrates another exampleof a touch-enabled computing system 100C. In this example, a computingdevice 101 features a touch surface 116 which is mapped to a graphicaluser interface provided in a display 122 that is included in computingsystem 120 interfaced to device 101. For example, computing device 101may comprise a mouse, trackpad, or other device, while system 120 maycomprise a desktop or laptop computer, set-top box (e.g., DVD player,DVR, cable television box), or another computing system. As anotherexample, touch surface 116 and display 122 may be included in the samedevice, such as a touch-enabled trackpad in a laptop computer featuringdisplay 122.

In some embodiments, a position of a touch within a touch area definedby the touch surface can be returned and then converted to one or morepixel addresses. The value or values associated with the pixeladdress(es) can be accessed and used to drive the actuator(s) of thehaptic device (including a variable friction device or other devices).For instance, each pixel address may be associated with an intensityvalue that is correlated to an amplitude level with which apiezoelectric or other actuator is to be driven. As a more complexexample, each pixel address may be associated with three intensityvalues (i.e., RGB). Each of the three intensity values can be associatedwith a different actuator intensity in some embodiments. As anotherexample, some values may specify intensity and others specify durationof operation. As a further example, different pixel intensity values maybe correlated to different desired textures or components used to driveactuators to simulate a single texture. Still further, a multilayer RGBimage file may be used, with each layer corresponding to a particularactuator.

The mapping between the touch surface and graphical user interface maybe absolute or may be scaled. For example, in some embodiments, a touchlocation is directly correlated to a corresponding pixel address (orpixel addresses), with the associated values used in selecting hapticeffects to drive the actuator(s). In other embodiments, the touchlocation and velocity is considered.

As another example, a current or projected location of a touch can becompared to data identifying the location of GUI features such ascontrols, textual content, boundaries, an advertisement, and the like.Then, if a GUI feature is identified at the location, data associatingone or more haptic effects to the feature can be accessed. For instance,a processor may track the location of a touch and determine the touch isat or approaching a position in the touch area mapped to a particularcontrol (e.g., a button) in the graphical user interface. The processorcan then consult a listing of interface elements to determine a hapticeffect (e.g., a texture, a friction variation) associated with thebutton and, based on the haptic effect, take further actions to generatethe haptic effect.

To generate the haptic effect(s), a processor can access or generate oneor more haptic signals. For example, a processor may access drivesignals stored in memory and associated with particular haptic effects.As another example, a signal may be generated by accessing a storedalgorithm and inputting parameters associated with an effect. Forexample, an algorithm may output data for use in generating a drivesignal based on amplitude and frequency parameters. As another example,a haptic signal may comprise data sent to an actuator to be decoded bythe actuator. For instance, the actuator may itself respond to commandsspecifying parameters such as amplitude and frequency.

In some embodiments, a baseline haptic signal may be sent to theactuator(s) to generate an ambient haptic effect even in the absence ofa selected haptic effect in order to enhance the range of potentialeffects the device can produce. Thus, transmitting a haptic signal maycomprise sending a “stop” command, a “zero” or minimal signal, oranother signal to the actuator to reduce intensity as appropriate.

As an example, use of certain actuators, such as piezoelectricactuators, may allow for reduction in the coefficient of friction of atouch surface but not an increase in the coefficient of friction. Toprovide a range of options, a baseline signal may be provided so thatthe “ordinary” friction level of the touch surface is below thecoefficient of friction the touch surface would have when static.Accordingly, haptic effects may be defined with respect to the baseline,rather than static, value. If maximum friction is desired, a “zero”signal may be sent to the piezoelectric actuator to stop movement of thesurface.

Whether integrated with a display or otherwise, the discussion of 2-Drectangular and other touch surfaces in the examples herein is not meantto be limiting. Other embodiments include curved or irregulartouch-enabled surfaces that are further configured to providesurface-based haptic effects. Additionally, although a touch surface andsurface-based haptic effects are noted above, aspects of the presentinvention can be used independently of a touch surface, and can evenfind application in providing haptic effects for devices that are nottouch-enabled. Whether or not a touch-enabled device is used,embodiments may or may not include surface-based haptic effects.

Examples of hardware architecture for providing various haptic effectshave been provided above. Next, the disclosure turns to exemplaryembodiments of use of haptic effects. The headings below are not meantto be limiting—the various embodiments discussed below may be usedindependently or in any suitable combination with one another.

Haptic Widgets

Referring now to FIG. 2A, FIG. 2A shows a haptic widget 200 according toone embodiment of the present invention. The widget 200 is shown ashaving a dashed boundary as the widget 200 shown in this embodiment isnot visible to a user; however, it is configured to provide hapticfunctionality to applications or interface elements that are associatedwith the widget. However, in some embodiments, a haptic widget may bevisible, such as when provided to a user as an option for a hapticeffect or simply to provide a visible indication of a location a hapticeffect or to provide an audiovisual effect corresponding to a hapticeffect.

A widget may be generally understood as an interface element thatembodies particular functionality, such as a button or scroll bar, thathas a well-defined interface, such as an application programminginterface (API), for receiving inputs and providing outputs. A widgetmay be its own self-contained module of executable code or may beincorporated within a larger software application directly or as a partof a library (e.g. a dynamically-linked library).

The haptic widget 200 shown in FIG. 2A comprises functionality that maybe used by software to provide a particular haptic effect or hapticeffects. For example, a haptic widget may be created and provided by acompany, such as ECI, as a brand-specific haptic widget. The widget 200may comprise a plurality of different haptic effects 202-208 as well asother functionality, such as configuration functions and parameters. Andwhile the embodiment shown in FIG. 2A shows a haptic widget 200comprising four haptic effects 202-208, any number of haptic effects maybe included depending on the particular requirements of a widgetaccording to an embodiment of the present invention. In the embodimentshown, haptic widget 200 is a brand-specific haptic widget and comprisesa plurality of brand-specific haptic effects 202-208. Each haptic effect202-208 is a brand-specific haptic effect that may be output or playedbased on inputs received by the widget. For example in one embodimentand referring again to the device 10 of FIG. 1A, the brand-specifichaptic widget 200 comprises a brand-specific haptic effect 202 to beplayed at startup and a brand-specific haptic effect 204 to be played atshutdown. In addition, the haptic widget 200 comprises a brand-specifichaptic effect 206 configured to be played when device 10 enters a sleepor into a hibernate mode, and another brand-specific haptic effect 208configured to be played when device 10 “wakes up” from a sleep orhibernate mode. Each of these brand-specific haptic effects 202-208 maybe associated with ECI's branded devices and provide common hapticeffects across the different devices that provide a haptic associationwith ECI to the user. In addition, some of the brand-specific hapticeffects may provide other indications, such as the status of the device,e.g. startup.

As discussed above, a haptic widget 200 provides a well-definedinterface. FIG. 2D shows a more detailed view of haptic widget 200,including its interface 220. In the embodiment shown in FIG. 2D, thehaptic widget 200 comprises a plurality of haptic effects 202-208, atleast one configuration parameter 210, an image 212, a sound 214, and aninterface 220. In the embodiment shown in FIG. 2D, various functionalityprovided by the haptic widget is only available by using the interface220. The interface 220 can be used or invoked by an application, anoperating system, or other executable code to use various functionalitydefined within the widget. In some embodiments, the interface maycomprise one or more executable functions comprising an API. In someembodiments, the interface 220 may be configured to receive messagespassed via a messaging protocol or other mechanisms.

For example, in the embodiment shown in FIG. 2D, the interface 220 isconfigured to receive signals configured to change or retrieve theconfiguration parameter 210, receive a signal to play one or more of thehaptic effects 202-208 and to output a signal configured to cause theplayed haptic effect or haptic effects 202-208, receive a signal tooutput the image 212 and to output a signal configured to cause theimage 212 to be displayed, and receive a signal to output the sound 213and to output a signal configured to cause the sound 214 to be played.In some embodiments, the interface 220 may be configured to receiveother commands, such as activation or deactivation commands. In oneembodiment, an activation command may be configured to activate thehaptic widget or to activate one or more of the haptic effects 202-208,the image 212, or the sound 214. Similarly, a deactivation command maybe configured to deactivate the haptic widget or to deactivate one ormore of the haptic effects 202-208, the image 212, or the sound 214

In the embodiment shown in FIG. 2D, the widget 220 is defined as anobject class containing a plurality of other object classes, such asobject classes defining or storing information about the various hapticeffects 202-208, the image 212, the sound 214, and the configurationparameter(s) 210. In some embodiments, the haptic widget 220 maycomprise references to one or more other objects or may instantiateobjects corresponding to object classes as needed to provide thewidget's functionality. However, other programming paradigms besides theobject-oriented paradigm may be used to define haptic widgets. Thus,haptic widgets according to some embodiments of the present inventionmay be defined according to other programming paradigms.

To use the widget's functionality, executable code invokes the widget200 by interacting with its interface 220. For example, in oneembodiment of the present invention, an operating system of a handhelddevice, such as a smartphone, is configured to associate haptic widgetswith applications or other widgets available to a user of thesmartphone. When the operating system determines that a user hasexecuted an application, the operating system identifies a haptic widget200 associated with the application and invokes the haptic widget'sinterface 220 to cause the haptic widget 200 to generate a signal tooutput a haptic effect. The operating system receives the signal fromthe haptic widget 200 via the interface 220 and generates an actuatorsignal based on the signal, where the actuator signal is configured tocause an actuator within the smartphone to output a haptic effect. Insome embodiments, the operating system may generate a haptic effectbased on the signal using an electrostatic device.

For example, an illustrative widget interface may include configurationfunctions, activation or deactivation functions, input functions,registration functions and corresponding outputs for one or more of suchinterface functionality. For example, in one embodiment, a widget maycomprise activation and deactivation functions. In such an embodiment,portions of or all of the functionality of a haptic widget may beactivated or deactivated. For example, the haptic widget 200 shown inFIG. 2D may be installed on a smartphone as a trial version and thus isinstalled in a partially disabled state wherein one of the hapticeffects 202 is enabled, while the remainder 204-208 are disabled. Insuch an embodiment, a user of the smartphone may obtain only limitedfunctionality of the widget 200. However, if the user were to subscribeto a service or pay a fee to activate the widget 200, an activationcommand may be sent to the widget 200. Upon receiving the activationcommand, the widget 200 may change one or more configuration parameters,such as an “enabled” state of the haptic effects 202-208 as well as aparameter indicating the state of the widget (e.g. a change to “active”from “trial”). After successful activation, the widget 200 may output asignal indicating that the widget has been activated or that activationwas only partially successful or unsuccessful.

At a later date if the user terminates a service associated with thewidget 200 or simply desires to deactivate the widget 200, adeactivation command may be sent to the widget 200 to disable the widget200. Upon receipt of such a command, the widget 200 may change one ormore configuration parameters, such as by setting an “enabled” state ofthe haptic effects 202-208 to “disabled” as well as a parameterindicating the state of the widget (e.g. a change to “disabled” from“trial” or “active”). After successful deactivation, the widget 200 mayoutput a signal indicating that the widget has been deactivated or thatdeactivation was only partially successful or unsuccessful.

In some embodiments, haptic widgets may comprise one or moreauthentication functions or parameters. For example, a distributor ofhaptic widgets may wish to ensure that a widget has been appropriatelylicensed before allowing it to be activated. In such a case, a hapticwidget may require an authentication code upon activation ordeactivation. Further, a haptic widget may be configured to transmit asignal to a remote device to verify that activation or deactivation hasbeen properly authorized.

Similarly, a haptic widget 200 may be configured to provide anidentification or verification of authenticity based on a receivedcommand. For example, in one embodiment, a creator of haptic widgets mayembed a configuration parameter within its widgets to verify theirauthenticity or to allow their authenticity to be verified. For example,in one embodiment, a haptic widget may be distributed with a digitalsignature. In such an embodiment, a user may be able to access a website to verify the authenticity of a haptic widget. The website may thentransmit a signal to the widget 200 to request its digital signature orother authentication information. In response to such a request, thewidget 200 provides the digital signature or authentication information,which is then processed by the website to verify its authenticity. Uponverification, the website may provide an indication to the user of theauthenticity of the widget, or, if the widget is not verified, the lackof authenticity.

In addition to activation or deactivation functions, a haptic widget'sinterface 220 may provide functionality to change parameters, such asoperational parameters, of the widget 200. For example, a haptic widget200 according to one embodiment of the present invention includes aplurality of configuration functions to configure the haptic widget.Suitable functions include one or more “volume” controls to set maximumor minimum magnitudes or intensities for one or more of haptic effectsavailable within the widget, time-based settings (e.g., haptic effectsoff at night, on during the day, or a timer after which the hapticwidget is deactivated), or power settings (e.g., deactivate hapticeffects if battery level is below 20%).

As discussed above, in some embodiments, haptic widgets may be able tooutput different haptic effects based on configuration parameters orother external parameters. For example, in one embodiment, a gameapplication available on a cell phone or a smartphone may be associatedwith a haptic widget provided by the operating system. The widget may beconfigured to output different haptic effects based on the time of day.For example, if a user attempts to execute a game application between 9am and 5 pm on a weekday, the haptic widget may automatically select andplay, without input from the game application, a haptic effect that willelicit a negative hedonic response (such as displeasure) as a deterrent.Alternatively, if the user attempts to execute the game application atnight or on a weekend, the haptic widget may automatically select andplay, without input from the game application, a haptic effect that willelicit a positive hedonic response (such as pleasure) as anencouragement. In another embodiment, the operating system may determinewhether the play the positive or negative haptic effect when the game isactivated and command the widget to output the selected haptic effect.

As discussed previously, some embodiments of the present invention mayinclude haptic widgets associated with a particular brand or company.Such haptic widgets may be coupled with other functionality to providehaptic sensations in a variety of settings. For example, in oneembodiment, device 10 comprises a plurality of processors, at least oneof which is configured to receive and process Global Positioning System(GPS) signals to determine, among other information, a location of thedevice. Based on the determined location, the device 10 may determinethe proximity of a store associated with a particular brand or company,such as a cellular provider's store. The device 10 then identifies ahaptic widget associated with the cellular provider and sends at leastone signal to the haptic widget to cause a brand-specific haptic effectto be played. In addition, in some embodiments, the device may send asignal to cause the haptic widget to also display an image or soundassociated with the brand substantially simultaneously with the playingof the haptic effect. In addition, in some embodiments, the device 10may further display a message to the user, such as substantiallysimultaneously with the brand-specific haptic effect or image or sound,to indicate that a store nearby provides products or services providedby the cellular provider. In such an embodiment, a user may be providedtimely advertisements associated with a particular brand or companybased on the user's location as well as an indication of the location ofa nearby store.

Haptic widgets 200 may be defined to embody types of haptic effects,such as vibrations, or to define a group of haptic effects to beassociated with particular functionality. For example, in oneembodiment, a company, such as ECI, may create one or morebrand-specific haptic widgets, each comprising one or morebrand-specific haptic effects, and provide such widgets with devicesproduced by ECI. In addition, brand-specific widgets may be provided byother companies to be incorporated into ECI's devices. For example, forone or more cellular devices made by ECI, a cellular carrier may provideone or more haptic widgets to be incorporated into the ECI cellulardevices that are usable on the carrier's network. For example, when theECI connects to the cellular carrier's network, the device may invokethe wireless carrier's brand specific haptic widget to play abrand-specific haptic effect to help reinforce the wireless carrier'sbrand with the user. Similarly, haptic widgets from other companies maybe provided as well. Such widgets may be activated by applicationsinstalled on ECI's devices or by advertisements within content displayedin other applications. For example, a company's advertisement within awebpage may identify and invoke a haptic widget on the device that wasprovided by the company, which may provide brand identification to auser of the device and cause a user to search for and view theadvertisement.

Referring now to FIGS. 2B and 2C, haptic widgets may be associated withother interface elements, such as applications, operating systemfunctions, buttons, etc. FIG. 2B shows a system that includes aplurality of haptic widgets 222-228 and a user interface slider 220. Toprovide haptic effects for the slider 220, a haptic widget 222 may beassociated with the slider 220 as shown in FIG. 2C. In the embodimentshown in FIG. 2C, the haptic slider 220 has been associated with ahaptic widget 222. The slider 220 was configured to identify widgetsavailable in the device and to select a suitable widget to use. Forexample, the slider may have been configured to be useable with a hapticwidget that elicits a particular hedonic response and thus may beconfigured to identify available haptic widgets and to employfunctionality available from widget 222 that provides hedonic hapticeffects, which will be described in greater detail. In anotherembodiment, the slider 220 may be distributed with a haptic widget thatis useable by the slider. In still another embodiment, the slider 220may be configured to associate with haptic widgets that provideparticular types of functions or that are widely available. Afterassociating with a haptic widget 222, the slider 220 is configured toactivate haptic effects within the haptic widget 222 based onmanipulations of the slider 220.

In some embodiments, haptic widgets according to the present inventionmay be configured to provide haptic effects with particular “hedonicvalue.” As used herein, “hedonic value” refers to the degree ofhappiness or sadness felt by the decision-maker at the moment of anoutcome's announcement. Haptic effects can be used by designers toencourage or require users to perform one or more of: making visualcontact with parts of the interface that they would otherwise be able tobypass or ignore; requiring conscious action where users would otherwisetake unconscious action; shifting the user's attention from one aspectof the interface to another; and/or giving the user time to cancel hisdecision to activate a widget halfway through the activation gesture.FIG. 12 shows a basic diagram 1200 of types of hedonic haptic effects.

As illustrated in FIG. 12, this can be achieved by presenting “positive”feedback at the beginning of a gesture which encourages the completionof the gesture, presenting “positive” feedback at the end of a gesturewhich promotes satisfying confirmation of the gesture and/orencouragement to repeat the gesture, presenting “negative” feedback atthe beginning of a gesture which interrupts the user's attention on thegesture (possibly causing the user to shift attention to a visual itemand/or possibly causing the user to abort the gesture), and presenting“negative” feedback at the end of a gesture which causes the user toassociate the negative sensation with the gesture, and possiblydeterring the user from using that gesture the next time the opportunityarises.

FIGS. 13-14 provide an example. Here, an interface 1300 features anadvertisement 1302. The advertisement includes two interface elements, aslider 1304 which is dragged left-to-right to accept the offer and aslider 1306 dragged right-to-left to dismiss the offer. As shown in FIG.13, haptic encouragement and/or confirmation can be used to associatepositive feelings/experiences with use of the confirmation slider 1304as shown at 1308. For example, the coefficient of friction may be lowerwhen moving left-to-right, and a favorable effect (e.g., soft vibrate)may be played back when the check mark is reached. On the other hand,use of slider 1306 as shown at 1310 in FIG. 14 may bedeterred/interrupted. For example, an interruption (e.g., clicks, pops,simulated rough texture, or a haptic effect otherwise designed to bealarming or distracting) can be provided as slider 1306 is movedright-to-left and/or an unfavorable effect can be played back when the“X” is reached (if the gesture is completed at all).

To provide haptic effects, each of these sliders 1304, 1306 isassociated with a haptic widget 1320, as shown in FIGS. 13A and 14A. Inthe embodiments shown FIGS. 13A and 14A, each slider 1304, 1306 isassociated with the same haptic widget 1320 as the haptic widget isconfigured to provide hedonic haptic effects associated with dragginggestures. Thus, each slider 1304, 1306 may provide the desired hapticeffects simply by activating the appropriate haptic effect from thehaptic widget. For example, slider 1304 may activate thepositively-hedonic, “Action Encouragement” haptic effect to be outputwhile the slider button is moving, followed by the positively-hedonic“Action Confirmation” haptic effect when the slider button reaches theend of its path. Similarly, slider 1306 activates the negatively-hedonic“Action Interruption” haptic effect while the slider button begins tomove or is moving, and outputs a negatively-hedonic “Action Deterrent”when the slider reaches the end of its path to deter the user fromfeeling satisfied by the completion of the action, or from completingthe action repeatedly, or from completing the action again in the futureif the opportunity arises.

While in this embodiment, each of the sliders 1304, 1306 is associatedwith the same haptic widget, in the embodiments shown in FIGS. 13B and14B, each slider 1304, 1306 is associated with a different widget 1322,1323. For example, one widget 1322 may provide positive hedonic hapticeffects, while the other widget 1324 provides negative hedonic hapticeffects. Still other combinations of haptic effects could be groupedwithin a common haptic widget based on another organizational scheme.Further, each slider 1304, 1306 may be associated with a plurality ofhaptic widgets to provide a variety of different haptic effects to therespective slider 1304, 1306.

Different hedonic haptic effects may be generated to provide positiveand negative haptic sensations. For example, in one embodiment, apositive hedonic effect may provide a reduced coefficient of friction,which allows a user to more easily complete a gesture. In anotherembodiment, a positive hedonic effect may comprise a low-magnitude,low-frequency vibration to provide a soothing or relaxing sensation fora user. Some embodiments of the present invention may combine multiplehaptic effects to create a positive hedonic effect. For example, in oneembodiment, a positive hedonic effect comprises a reduced coefficient offriction in combination with a low-magnitude, low-frequency vibration.

As discussed previously, negative hedonic effects are generated toprovide an unpleasant haptic sensation to deter or interrupt a user'saction. For example, in one embodiment, a negative hedonic effect mayprovide an increased coefficient of friction or provide a rough orunpleasant texture to deter a user's gesture. In another embodiment, aseries of short-duration, high-magnitude “staccato” effects may beoutput and perceived as unpleasant by a user. As with the positivehedonic effects, some embodiments of the present invention may combinemultiple haptic effects to create a negative hedonic effect. Forexample, in one embodiment, a negative hedonic effect comprises anincreased coefficient of friction in combination with a series ofshort-duration, high-magnitude “staccato” effects to deter or interrupta user's action.

In some embodiments, haptic effects may be used to discourage useraction by providing pseudo-force feedback to increase a level of effortor concentration by the user to complete the action. For example, in oneembodiment, a haptic effect may increase a coefficient of friction ofthe touch-sensitive input device, thereby providing actual resistance tothe user action. In some embodiment, the haptic effect may be configuredto provide confusing or counter-intuitive tactile sensations. Forexample, in one embodiment, a haptic effect may be configured toindicate a movement of an on-screen object in a direction different thanthe direction of a user's movement. In such an embodiment, if a userattempts to move an advertisement by sliding it off of the screen to theright, a vibration may be output that emulates a movement in an “up”direction, rather than a “right” direction, or the haptic effect mayemulate a collision (and the image may appear to stop moving followingthe “collision”), thus potentially requiring the user to lift a fingerand re-engage the image by touching it again.

Referring now to FIG. 15, FIG. 15 shows a method 1500 for providinghaptic effects according to one embodiment of the present invention. Thefollowing description of some embodiments of the present invention willbe made with reference to the device shown in FIG. 1A; however, otherdevices, such as those shown in FIGS. 1B-C are suitable for use withthese and other embodiments of the present invention.

In the embodiment shown in FIG. 15, the method 1500 begins at block 1502with the step of identifying a haptic widget. As described previously, ahaptic widget may be capable of storing and providing identifyinginformation. In some embodiments, a haptic widget may store a name, abrand, a company name, an ID number, a digital signature, or otheridentifying information. To identify a haptic widget, a signal may besent to the haptic widget requesting its identification information. Inone embodiment, a haptic widget may receive a signal requestingidentification information. In response, the haptic widget provides oneor more pieces of information associated with the haptic widget'sidentity. After receiving the identification information, the device 10may determine the identity of the haptic widget or identifyingcharacteristics of the widget. Alternatively, the haptic widget may notrespond to the signal, as the source may be unknown or unverified, ormay not have identification information to provide.

In some embodiments, a haptic widget may be identify by determining anassociation between an application, an operating system, an image, orother object or program code and a haptic widget. For example, in oneembodiment, the device 10 maintains a database describing associationsbetween haptic widgets and applications or other objects. In such anembodiment, the device 10 may provide a haptic widget or may provide areference to a haptic widget based on information stored in thedatabase. In a further embodiment, an application or other program codemay identify a haptic widget to be invoked, such as by sending a messageto a specific haptic widget or by invoking an interface function of thehaptic widget. After a haptic widget has been identified, the method1500 proceeds to block 1504 if configuration is needed, otherwise themethod may skip block 1504 and proceed to block 1506.

In block 1504, the haptic widget is configured. In one embodiment of thepresent invention, a haptic widget may be configured by activating thehaptic widget or by registering it. For example, a haptic widget may beregistered with an operating system by executing an installation routinethat stores the haptic widget on a non-volatile computer-readablemedium, activates or authenticates the widget, and provides informationabout the widget to the operating system, such as a location andinformation about the widget's interface, such as haptic functionalityor branding information. In one embodiment, a haptic widget may beconfigured by changing a parameter of the widget, such as the widget's“volume,” or the relative magnitude of haptic effects within the hapticwidget. Note that while in some embodiments, it may be necessary toconfigure a widget each time prior to using it, or to send parameters toit with one or more commands, in some embodiments, the configurationstep 1504 of the method 1500 shown in FIG. 15 need not be executed eachtime the method 1500 is performed and instead may be optionallyperformed. After configuring the widget, the method 1500 proceeds toblock 1506 if the widget is to be associated with an application, icon,or other software or hardware component of the device 10. If noassociation step is needed, the method proceeds to block 1508. Forexample, a user may simply interact with the widget itself rather thaninteracting with it indirectly by, for example, touching an image of abrand or logo.

At block 1506, the haptic widget is associated with a software orhardware component of the device. For example, in one embodiment, a usermay install a software application and a haptic widget on theirsmartphone. During the installation procedure, the operating system mayassociate the application with the widget such that when the applicationis executed, the operating system transmits a signal to the hapticwidget. In one embodiment, a webpage may include an image of a brand oran advertisement. When the webpage is parsed and displayed, program codewithin the web page request information regarding haptic widgets thatare installed on the device 10. If the program code determines that oneor more widgets is usable, the program code stores information regardingthe widgets to be used while the webpage is visible and associates thewidgets with the image or the advertisement. In one embodiment, theprogram code stores the information such that the association step isonly performed the first time the user navigates to the web page, suchas in a cookie. However, in another embodiment, the web page mayre-associate haptic widgets each time the user navigates to the webpage.In a further embodiment, a user may manually associate a haptic widgetwith a software or hardware component of the device 10. For example, theuser may associate a haptic widget with a calendar application such thatcalendar reminders cause the haptic widget to play a haptic effect orassociate the microphone with a haptic widget such that a haptic effectis played each time the microphone is activated, e.g. which may informthe user if she inadvertently placed a phone call.

Alternatively, the user may associate both the haptic widget andindividual haptic effects within the widget with a software component.For example, a user may associate a calendar appointment with a hapticwidget, but may associate different haptic effects within the widgetwith different reminders. For example, the user may associate alow-intensity haptic effect with a reminder 30 minutes prior to theappointment and a strong, negative hedonic haptic effect with a reminderoccurring at the time of the appointment or at a time after theappointment to notify the user that she is late to the appointment, orif the user has skipped an appointment a certain number of times (e.g.has skipped a gym or training appointment more than three times). Afterthe haptic widget has been associated with a software or hardwarecomponent, the method proceeds to block 1508.

At block 1508, a command is transmitted to the haptic widget via thewidget's interface. For example, a “play” command may be sent to thehaptic widget via the interface. Such a command may comprise one or moreparameters, such as magnitude, duration, etc., or may simply select aparticular haptic effect, wherein the widget determines parameters forthe haptic effect based on the widget's configuration parameters. Insome embodiments, a play command may identify a plurality of hapticeffects to be output, or even haptic effects, images, videos, sounds, orother effects within the haptic widget to be output.

Further, other commands may be sent to the haptic widget in someembodiments. For example, in some embodiments, a command may be sent toactivate part or all of the functionality of a widget, or deactivatepart or all of the functionality of the widget. In one embodiment, thecommand may request information or provide a configuration setting. Inaddition, a plurality of commands may be sent to the haptic widget inseries or substantially simultaneously according to some embodiments. Inresponse to receiving the command, the haptic widget performsfunctionality associated with the command, such as generating andproviding a signal configured to cause a haptic effect. After thecommand has been transmitted to the widget, the method 1500 mayterminate, or it may return to step 1508 where another command istransmitted to the haptic widget or it may return to block 1504 wherethe widget may be reconfigured. In some embodiments, additionalfunctions may be performed or the steps of the method 1500 may beperformed in different orders.

Haptic Branding

As previously discussed, embodiments of the present invention mayprovide haptic effects associated with brands or logos. For example,embodiments have been disclosed herein for providing such haptic effectsthrough the use of widgets. However, haptically-enabled branding may beimplemented and used in a variety of ways.

As is generally known, an entity, such as a company, may develop imagesor logos that uniquely identify the company or products associated withthe entity. Such images or logos may be formally trademarked or maysimply be conventionally associated with a particular company orproduct. However, other source identifying characteristics may be usedto reference a particular product or company. For example, hapticperception of products and their packaging is an important part ofquality perception and differentiation. Both of these are sorely missedby online marketing campaigns. Furthermore, for brand development,“touchpoints” are the stages of the relationship between a customer anda brand. Touchpoints are the critical points where opinions and feelingsabout brands are formed. One of the classic touchpoints for a brand isproduct packaging. For products being marketed with digital and socialmedia, there is no package to be touched. Haptics can fill this sensoryvoid and make brands tangible and visceral. Embodiments below relate tothe “haptic component of brand”—digitally generated tactile and forcefeedback that is part of a marketing message, which may influenceconsumer behavior.

In one embodiment, haptic effects are used to provide an interactiveavatar for a company logo that gets users' attention with animatedmotion, haptics, and/or the possibility of interactive gesture. The logofor Immersion Corporation, the assignee of the present application,indicated at 200 in FIG. 3A is an example of an avatar that gainsattention and sympathy by moving in human-like ways. Embodiments can addhaptic feedback and response to gestures so that, when the avatar movesor waves or “taps” the screen, a user can feel vibrations caused by itsmovements or tapping gestures. For example, a runtime package,application, or instruction set can be provided so that as the avatar isanimated, a vibrotactile effect is output. Additionally, when a usertouches the avatar, it may simulate a high-five gesture with acorresponding haptic effect. Via one or more haptic effects, the usercan interact with the logo and the various interactions with the brandand the richness of the haptic experience may draw the user in, thusstrengthening his or her emotional response to the brand.

In one embodiment, haptic effects are used to provide an interactiveicon for company logo that encourages customers to “enact” a brand.Persuading a target to write the name of a product, or otherwise“sculpting” consumer behavior towards the brand can increase brandloyalty and encourages brand advocacy. Accordingly, haptic effects canbe used to facilitate such behavior—as an example, completion of thegesture can be rewarded with a pleasurable haptic response. For example,logo 300 of FIG. 3B can be rendered onscreen. Touch or other input canbe detected to provide a haptic response when the logo is traced withthe finger. Additionally or alternatively, haptic feedback can beprovided while the input is in progress. Similarly, FIG. 3C provides alogo 320 comprising a plurality of apparent claw marks. According to oneembodiment of the present invention, a user may employ a multi-touchgesture to interact with the logo to simulate a clawing motion. Whilethe user is performing the gesture, the device 10 may output a hapticeffect associated with the gesture, such as haptic effects configured tosimulate a tearing feeling, such as claws tearing through cloth.

In one embodiment, haptic effects are used to provide a haptic componentof product identity and/or characteristics. For example, consider thedocument 400 shown in FIG. 4, depicting a list of products 402, 404,406, 408, 410, and 412. For instance, document 400 may comprise a webpage with listings of different digital cameras. Displayed within a webpage, each of the cameras appears very similar and properties likeweight and texture, which are often associated with perception ofquality, are not available to the consumer. The embodiment shown in FIG.4 addresses this problem by allowing product marketers to associate ahaptic effect with their product. For example, as shown at 414, theeffect could occur when the user slides his finger over the product'simage. As another example, an effect may be used to differentiatingproducts with a unique and pleasant haptic “click” or otherbrand-specific haptic effect that is output when the user touches thelink to a particular product in a list of search results (for example, aclick of a particular camera's shutter).

Embodiments of the present invention may provide haptic branding throughthe use of haptic widgets. For example, as discussed previously, ahaptic widget may be a brand-specific haptic widget, or may includebrand-specific haptic effects or images, such as logos or brands. In oneembodiment, a device 10 may include a brand-specific haptic widgetassociated with ECI. In such an embodiment, the device 10, at startup,may transmit signals to the haptic widget to cause it to display animage associated with ECI as well as output a brand-specific hapticeffect associated with ECI. In some embodiments, the device 10 may beconfigured to display the image and output the brand-specific hapticeffect at substantially the same time.

Similarly, applications, operating systems, or content may be configuredto use brand-specific haptic widgets to provide a richer user experienceassociated with the brand. In one embodiment, a webpage may include animage associated with a brand or company. In such an embodiment, thewebpage may include program code configured to request informationregarding haptic widgets available on a computer system. The computersystem may maintain a table describing installed or activated widgets ormay query one or more of the installed widgets to determine identitiesof each. In such an embodiment, the computer system provides informationregarding the available haptic widgets in response to the request. Theprogram code may then identify a haptic widget, such as a brand-specifichaptic widget, capable of providing a haptic effect associated with theimage. The program code then invokes the haptic widget to provide aselected haptic effect. Such embodiments provide a more immersive,informative browsing experience for a user that makes use of hapticwidgets previously installed on the user's computer or device.

In one embodiment, a web page or other content provided by a remotedevice, such as a server, may include a haptic widget. For example, auser may navigate to a web page that includes a haptic widget, which istransmitted to the user's device and used by the web page. In one suchembodiment, the web page may install the haptic widget, either afterreceiving a confirmation by the user or automatically without userintervention, and may then configure or activate the haptic widget tooutput haptic effects to the user, such as based on content within theweb page.

In another embodiment, a user may install an application on a computeror device, such as a smartphone. During or after installation, a hapticwidget may be associated with the application. For example, in oneembodiment, during installation, an operating system may determine aprovider of the application and identify one or more haptic widgetsassociated with the provider of the application, such as one or morebrand-specific haptic widgets, or haptic widgets comprisingbrand-specific haptic effects or images associated with the applicationprovider. In one embodiment, the application, upon execution, may detecthaptic widgets available on the computer or device and associate one ormore widgets with the application such that during application startupor execution, one or more brand-specific haptic effects may be played.

Referring now to FIG. 16, FIG. 16 shows a method 1600 according to oneembodiment of the present invention. The description of FIG. 16 will bemade with reference to the device 10 shown in FIG. 1A; however, otherdevices, such as those shown in FIGS. 1B-C are suitable for use withthese and other embodiments of the present invention.

In the embodiment shown in FIG. 16, the method 1600 begins at block 1602with the step of displaying an image associated with a brand. As isknown, companies may generate images associated with brands, such aslogos, mascots, etc. In one embodiment, an image may be displayed as apart of a splash screen when the device 10 is booting or when anapplication is launching. In one embodiment, an image may be displayedwithin web content or within a set of sponsored links on a searchresult. In some embodiments, an image may be displayed within a gamedistributed without cost, but with in-game advertising, such as viabanner or interstitial ads. After the image is displayed, the method1600 proceeds to block 1604. However, in some embodiments, the methodmay proceed to block 1606 or 1608 following block 1602. For example, insome embodiments, the image may comprise an animation and thus themethod may proceed to block 1606. In some embodiments, the image and ahaptic effect may be output substantially simultaneously, in which casethe method 1600 may proceed directly to block 1608, or perform blocks1602 and 1608 substantially simultaneously.

At block 1604, the device's processor receives a signal indicating acontact with a touch-sensitive input device. For example, in oneembodiment, the device may comprise a touch-sensitive input deviceconfigured to sense a contact, such as from a user's finger. In such anembodiment, as described above with respect to FIGS. 1A-C, thetouch-sensitive input device may provide position information associatedwith contact as well as other information, such as pressure information.After receiving the contact signal, in one embodiment, the method 1600proceeds to block 1606; however in some embodiments, the method mayproceed to step 1608.

In block 1606, the device's processor updates the displayed image. Forexample, in one embodiment, the displayed images may cycle through aplurality of images to provide an animation. In another embodiment, thedisplayed image may be modified or an animation may be triggered by thereceived contact signal, such as a user's contact or gesture associatedwith the image. In one embodiment, a user may touch the image or performa gesture on the image, which may cause the image to change color,shape, etc. or to perform an animated movement, such as walking orjumping. However, in some embodiments, the image may not change andthus, block 1606 may not be reached. However, after block 1606 hascompleted, the method 1600 proceeds to block 1608.

At block 1608, the device 10 outputs a haptic effect. For example, inone embodiment, the device 10 may output a brand-specific haptic effectassociated with the image. In another embodiment, the device 10 mayoutput a plurality of brand-specific haptic effects during an animationof the image, such as an animation of a corporate logo or mascot. Infurther embodiments, the device 10 may output brand-specific hapticeffects associated with the user's contact or gesture. For example, if auser touches the image, the device 10 may output a positive hedonichaptic effect, or if the user correctly traces the image, such as animage showing a corporate logo, the device 10 may output a positivehedonic haptic effect throughout the gesture and output a secondpositive hedonic haptic effect when the user successfully completes thegesture, or a negative hedonic haptic effect if the user incorrectlyperforms the gesture, or halts the gesture prior to completion. Further,in some embodiments, the haptic effect may be output by way of a hapticwidget. For example, a haptic widget may be associated with the image orwith a brand associated with the image. In one such embodiment, when theuser interacts with the image, the haptic widget may be commanded tooutput one or more signals to cause brand-specific haptic effects.

In some embodiments of the method 1600, one or more steps may beperformed substantially simultaneously, asynchronously, or in differentorders. For example, an animated image may be displayed irrespective ofany user contact with the animation, and haptic effects may be output atany time during the animation if the appropriate contact is made orgesture is performed. Further, in some embodiments, fewer than all ofthe depicted steps may be performed. For example, in one embodiment, theimage may be displayed substantially simultaneously with abrand-specific haptic effect while the device 10 is booting, but thedevice 10 may not recognize user contacts with the screen and may notupdate or change the image.

Haptic Advertising

As previously discussed, embodiments of the present invention mayprovide haptically-enabled advertising. For example, embodiments includeusing haptics to help companies reach their customers through hapticallyenhanced advertisements consisting of haptic superstitials, haptic-videosynchronous ads, or interactive haptic banner ads. Haptics can providesome unique benefits to this space as it is inherently emotional, isperipherally processed and is highly attention-grabbing. Advantages caninclude (but are not limited to) providing a new tool for marketers toincrease their ad effectiveness, improving the user experience of mobileads (user-focused), making mobile ads more effective(advertiser-focused), and/or facilitating product differentiation. Forexample, an ad delivery entity or network may differentiate itself bypresenting ads with haptic feedback. Several examples are notedbelow—any or all could be implemented, for example, by using a browseror other application enabled to provide haptic feedback in response toaccessing data identifying an advertisement or other communicationspecifying haptic effects. The browser may be executed by a mobiledevice or another computing device.

In one embodiment, haptic effects are provided in conjunction withinterstitials. An interstitial (something “in between”) is a segmentwithin a document (such as an image or block of text) that is insertedin the normal flow of editorial content structure on a Web site or otherdocument for the purpose of advertising or promotion. It can be highlyintrusive, somewhat intrusive, or not intrusive at all, and the reactionof viewers usually depends on how welcome or entertaining the messageis.

One example of the use of haptics is shown in FIG. 5. A web page orother document 500 includes content 502. The browser or other displayingapplication is configured to play back a haptic effect (alert, change intexture, etc.) when the interstitial 504 appears on the screen and whenit disappears off the screen in an attempt to shift the focus of theuser to the advertisement. This may be particularly effective ingesture-based interfaces where the user is already interacting with thescreen in order to control the scroll-position of the document withinthe document browser.

Additionally, a haptic effect deemed “pseudo-force feedback” could beused to cause the sliding-scrolling gesture 506 to require more distanceto get the advertisement to scroll off-screen (e.g., the distance shownat 508), thus requiring more conscious and physical effort on the partof the user to dismiss the ad, keeping the eyes on the ad a longer time.This pseudo-force feedback could be made extremely subtle, so that theuser is not aware that the scrolling behavior is affected by the ad'sposition.

In one embodiment, a superstitial ad is used along with haptic feedback.Superstitial ads visually occlude the main part of the document, andplay only upon a user-initiated break in surfing, such as a mouse click,screen tap, etc. Superstitials can be used to achieve multipleadvertising goals, including branding, direct marketing, commerce andentertainment. As shown in FIG. 6, a haptic effect (alert, change intexture etc.) can be sent when the superstitial 602 appears on thescreen 600 and when it disappears off the screen. In this example, thesuperstitial features a close button 604 activated by a left-to-rightgesture. Additionally a haptic deterrent 606 or reward 608 could be usedto deter the user from dismissing the ad or encourage the user tointeract with the advertisement, respectively. For example, the hapticdeterrent may be an unpleasant or sharp haptic effect, may compriseresistance in the close button 604, etc.

Embodiments may also utilize haptic effects to support ad-specificinteraction(s). Here the purpose of haptics is to additionally engagethe user through haptic effects while they are interacting with theadvertisement. This will provide a more immersive and pleasant userexperience with the advertisement. Casual games (sports game, puzzlegame) can use haptic feedback to become engaging and immersive (tap ofthe bat, drag the avatar through the mud etc., comparing two textures).Haptic effects can be used to attract the user to the game initiallywith haptic break-in (commanding the user's attention) and/or to rewardtheir play with immersive haptic effects.

For example, FIG. 7 depicts a shooting game 700 in which a sight 702 isaimed by tilting a phone or other device, with the objective being totarget dinosaur 704 and tap to shoot. As shown at 706, a haptic effectcan be provided when the tap occurs. Additionally, haptic effects can beprovided when the game begins, when the dinosaur is targeted, etc. FIG.8 shows a game 800 in which the objective is to tilt the device to movemarble 802 to hole 804. Haptic effects can be provided, e.g., when thegame begins, when the border is struck at 806, when the hole isapproached at 808, and otherwise during the game. FIG. 9 shows asimulated scratch-off game 900. A touch input as shown at 902 is used toscratch off a virtual lottery ticket. Haptic effects (e.g., texturechanges from scratchy to smooth) can be used as the covering in thevirtual lottery ticket is scratched away.

Haptics can be used to encourage the user to interact with theadvertisement using gestures or familiar day-to-day hand interaction.Further examples of interactive widgets for casual games embedded in adsare light switches, sliders, lottery scratch cards, and spinning wheels.Another possibility is to encourage the user to search for hidden haptic“easter eggs” by exploring an ad with their finger or through tiltingthe phone.

Embodiments also include synchronizing or otherwise coordinating hapticeffects with video (and/or audio) content in ads. Today, many ads aremade to be attention-grabbing by leveraging animation/video, and audioto create pseudo-social interaction scenarios. For example, an ad mayfeature a video of a person who walks on camera, looks directly at thecamera (at the user), and begins talking about a product. This isengaging because we are hardwired to pay attention to people who arelooking at us and talking to us. Additionally, moving objects(especially people) cause us to instinctively track them with our eyes.Furthermore, if person is attractive, this eye-tracking effect issignificantly heightened.

Haptics can be used to further improve the efficacy of this scenario.For example, as shown in FIG. 10, a video 1000 may feature a person 1002who taps or knocks on the screen while text 1004 (and/or speech) outputis provided. For example, person 1002 in the advertisement may tap thescreen using finger 1006. Haptic effects 1008 (e.g., vibrations,localized pops or clicks) can be synchronized with each tap so that theuser “feels” person 1002 knocking, drawing the user's attention to thead and initiating visual contact. This synchronization of multi-modalfeedback also creates an immersive pseudo-social scenario, where theuser feels that the person in the ad is more present, and therefore morereal, which may improve the user's confidence in the testimonial orother ad content, or the intensity of the user's interest in the ad. Inaddition to or instead of providing haptic effects 1008, haptic effectscould be keyed to the audio portion (if any) of the advertisement—forexample, different haptic effects could be associated with particularwords or intonations in the audio. For example, the audio track can beanalyzed and converted to haptic data used to provide different effectsas the audio is output via a device speaker and/or displayed as onscreentext.

Although shown in the context of an advertisement, such effects could beused in other contexts—for example, a “video mail” message could recordvideo of a first person along with the first person's hapticinteractions (e.g., taps, etc.) with a screen area. When played back bya second person (e.g., using a mobile device), the video could be playedback along with the recorded interactions. Similarly, haptic effectscould be keyed to audio as noted above during a haptically-enabled audiomessage. Of course, the haptic effects/interactions could be relayedfrom one device to another during a real-time communications session(e.g., video chat/teleconference, voice call, etc.) as well.

The sensory immersion in this interaction can be further heightened byinviting the user to interact with the video gesturally. For example, asshown in FIG. 11, the person 1102 in video 1100 could slide her finger1106 along the screen and ask (as shown at 1104) the user to try totrack her finger 1106 as it moves along path 1108. When the user does sosuccessfully, a haptic reward is delivered. The illusion of hapticallycommunicating with the person in the video would promote emotionalresponse and attentional investment in the interaction, keeping the userengaged for a longer period of time and/or generating feelings ofwell-being and social acceptance.

Additional examples of video-synchronized haptic ads include usingeffects with other objects, such as a vibration or pop when a flyingobject such as a pie hits the screen. These and other events can win theuser's attention by simulating kinetic motion and collision.

Referring now to FIG. 17, FIG. 17 shows a method 1700 according to oneembodiment of the present invention. The description of FIG. 17 will bemade with reference to the device 10 shown in FIG. 1A; however, otherdevices, such as those shown in FIGS. 1B-C are suitable for use withthese and other embodiments of the present invention.

In the embodiment shown in FIG. 17, the method 1700 begins at block 1602with the step of displaying an advertisement. As is known, companies mayprovide advertisements to be embedded within content, such as webpages,videos, games, etc. In one embodiment, an advertisement may be displayedwithin a webpage being viewed by a user, such as within a set ofsponsored links on a search result. In some embodiments, anadvertisement may be displayed within a game distributed without cost,such as via banner or interstitial ads. In some embodiments, theadvertisement may include animations or mini-games for a user to play.After the advertisement is displayed, the method 1700 proceeds to block1704. However, in some embodiments, the method may proceed to block 1706or 1708 following block 1702. For example, in some embodiments, theadvertisement may comprise an animation or a mini-game for a user toplay and thus the method may proceed to block 1706 as theadvertisement's animation executes. In some embodiments, theadvertisement and a haptic effect may be output substantiallysimultaneously, in which case the method 1700 may proceed directly toblock 1708, or perform blocks 1702 and 1708 substantiallysimultaneously.

At block 1604, the device's processor receives a signal indicating acontact with a touch-sensitive input device. For example, in oneembodiment, the device may comprise a touch-sensitive input deviceconfigured to sense a contact, such as from a user's finger. In such anembodiment, as described above with respect to FIGS. 1A-C, thetouch-sensitive input device may provide position information associatedwith contact as well as other information, such as pressure information.After receiving the contact signal, in one embodiment, the method 1600proceeds to block 1606; however in some embodiments, the method mayproceed to step 1608.

In block 1606, the device's processor updates the advertisement. Forexample, in one embodiment, the advertisement may cycle through aplurality of images to provide an animation or to provide mini-game fora user to play, such as a miniature golf game. In another embodiment,the advertisement may be modified or an animation may be triggered bythe received contact signal, such as a user's contact or gestureassociated with the image. In one embodiment, a user may touch theadvertisement or perform a gesture on the advertisement, which may causethe advertisement to initiate a game or to hide or close theadvertisement. However, in some embodiments, the advertisement may notchange and thus, block 1606 may not be reached. However, after block1606 has completed, the method 1600 proceeds to block 1608.

At block 1608, the device 10 outputs a haptic effect. For example, inone embodiment, the device 10 may output a haptic effect associated withthe advertisement, such as a haptic effect associated with an apparentinteraction within the advertisement, such as a ball rolling on asurface or a gun being fired. In another embodiment, the device 10 mayoutput a plurality of haptic effects during an animation of the image,such as an animation of a corporate logo or mascot in which the mascotwalks or hops around on the screen, or a person appears to tap on thescreen. In further embodiments, the device 10 may output brand-specifichaptic effects associated with the advertisement or with the user'scontact or gesture. For example, if a user touches the advertisement,the device 10 may output a positive hedonic haptic effect, or if theuser performs a gesture to navigate from the advertisement to a websiteselling advertised products. In such an embodiment, the device 10 mayoutput a positive hedonic haptic effect throughout the gesture andoutput a second positive hedonic haptic effect when the usersuccessfully completes the gesture, or a negative hedonic haptic effectif the user incorrectly performs the gesture, or halts the gesture priorto completion, or if the user attempts to close or hide theadvertisement. In some embodiments, the haptic effect may be output byway of a haptic widget. For example, one or more haptic widgets may beassociated with the advertisement or with a brand associated with theadvertisement. In one such embodiment, when the user interacts with theadvertisement, the haptic widget may be commanded to output one or moresignals to cause brand-specific haptic effects.

In some embodiments of the method 1700, one or more steps may beperformed substantially simultaneously, asynchronously, or in differentorders. For example, an animated advertisement may be displayedirrespective of any user contact with the advertisement, and hapticeffects may be output at any time during the advertisement if theappropriate contact is made or gesture is performed. Further, in someembodiments, fewer than all of the depicted steps may be performed. Forexample, in one embodiment, the advertisement may be displayedsubstantially simultaneously with a brand-specific haptic effect whilethe advertisement is visible within a webpage, but before a user hasinteracted with it.

Referring again to FIGS. 1A-1C, embodiments in accordance with aspectsof the present subject matter can be implemented in digital electroniccircuitry, in computer hardware, firmware, software, or in combinationsof the preceding. In one embodiment, a computer may comprise a processoror processors. The processor comprises or has access to acomputer-readable medium, such as a random access memory (RAM) coupledto the processor. The processor executes computer-executable programinstructions stored in memory, such as executing one or more computerprograms including a sensor sampling routine, a haptic effect selectionroutine, and suitable programming to produce signals to generate theselected haptic effects as noted above.

Such processors may comprise a microprocessor, a digital signalprocessor (DSP), an application-specific integrated circuit (ASIC),field programmable gate arrays (FPGAs), and state machines. Suchprocessors may further comprise programmable electronic devices such asPLCs, programmable interrupt controllers (PICs), programmable logicdevices (PLDs), programmable read-only memories (PROMs), electronicallyprogrammable read-only memories (EPROMs or EEPROMs), or other similardevices.

Such processors may comprise, or may be in communication with, media,for example tangible computer-readable media, that may storeinstructions that, when executed by the processor, can cause theprocessor to perform the steps described herein as carried out, orassisted, by a processor. Embodiments of computer-readable media maycomprise, but are not limited to, all electronic, optical, magnetic, orother storage devices capable of providing a processor, such as theprocessor in a web server, with computer-readable instructions. Otherexamples of media comprise, but are not limited to, a floppy disk,CD-ROM, magnetic disk, memory chip, ROM, RAM, ASIC, configuredprocessor, all optical media, all magnetic tape or other magnetic media,or any other medium from which a computer processor can read. Also,various other devices may include computer-readable media, such as arouter, private or public network, or other transmission device. Theprocessor, and the processing, described may be in one or morestructures, and may be dispersed through one or more structures. Theprocessor may comprise code for carrying out one or more of the methods(or parts of methods) described herein.

General Considerations

Use of the conjunction “or” herein is intended to encompass bothinclusive and exclusive relationships, or either inclusive or exclusiverelationships as context dictates.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

1. A computer-readable medium comprising a haptic widget, the hapticwidget comprising program code that is executable by a processor to:define a positive haptic effect configured to encourage interaction witha virtual object displayed on a display by reducing a perceivedcoefficient of friction; define a negative haptic effect configured todiscourage interaction with the virtual object by increasing theperceived coefficient of friction; define an interface for the hapticwidget; receive, via the interface, a play command for the positivehaptic effect or the negative haptic effect; and via the interface, asignal configured to cause the positive haptic effect or the negativehaptic effect to be output, the signal being in response to the playcommand, wherein the play command is configured to cause (i) thepositive haptic effect to be output based on the virtual object beingmoved in a first direction, and (ii) the negative haptic effect to beoutput based on the virtual object being moved in a second directionthat is different from the first direction.
 2. The computer-readablemedium of claim 1, wherein the haptic widget further comprises programcode for receiving, via the interface, a configuration of at least oneparameter of the haptic widget.
 3. The computer-readable medium of claim2, wherein the play command is a first play command, and wherein thehaptic widget further comprises: program code defining another hapticeffect; program code for receiving, via the interface, a second playcommand for the other haptic effect; and program code for outputting,via the interface, a second signal configured to cause the other hapticeffect, the second signal based on the at least one parameter and inresponse to the second play command.
 4. The computer-readable medium ofclaim 1, wherein the haptic widget further comprises: program code forreceiving, via the interface, a registration command, the registrationcommand configured to cause the haptic widget to register with anoperating system.
 5. The computer-readable medium of claim 1, whereinthe haptic widget further comprises: program code for receiving, via theinterface, an identification request; and program code for providing,via the interface, an identity in response to the identificationrequest.
 6. The computer-readable medium of claim 1, wherein the hapticwidget further comprises program code that is executable by theprocessor to output another signal configure to cause a haptic outputdevice to output a brand-specific haptic effect.
 7. Thecomputer-readable medium of claim 6, wherein the haptic widget is abrand-specific haptic widget.
 8. A method comprising: causing, by aprocessor, an image to be displayed on a touch-screen display;identifying, by the processor, a haptic widget that defines (i) apositive haptic effect that is configured to encourage a user tointeract with the image by reducing a perceived coefficient of friction,and (ii) a negative haptic effect is configured to discourage the userfrom interacting with the image by increasing the perceived coefficientof friction; and transmitting, by the processor, a first play command toan interface of the haptic widget based on the image being moved in afirst direction, the first play command being configured to cause thehaptic widget to output a first haptic effect signal, the first hapticeffect signal configured to cause the positive haptic effect to beoutput, and transmitting, by the processor, a second play command to aninterface of the haptic widget based on the image being moved in asecond direction that is different from the first direction, the secondplay command being configured to cause the haptic widget to output asecond haptic effect signal, the second haptic effect signal configuredto cause the negative haptic effect to be output.
 9. The method of claim8, further comprising configuring the haptic widget using the interface.10. The method of claim 8, wherein identifying the haptic widgetcomprises transmitting a command to the interface and receiving anidentification of the haptic widget from the interface in response tothe command.
 11. The method of claim 10, wherein the identificationcomprises a brand name, trademark, logo, or a company name.
 12. Themethod of claim 10, further comprising associating the haptic widgetwith the image to enable the haptic widget to produce haptic effects inresponse to interactions with the image.
 13. The method of claim 10,further comprising associating the haptic widget with a second widget,wherein an interaction with the second widget causes the haptic widgetto output a signal configured to cause a haptic effect.
 14. The methodof claim 13, wherein the first play command or the second play commandis transmitted by the second widget.
 15. A method comprising:displaying, by a processor and via a display device, an advertisement;receiving, by the processor, an input associated with the advertisement;and based on the input, generating, by the processor, a signalconfigured to cause a hedonic haptic effect to be output, wherein thehedonic haptic effect includes a positive haptic effect configured toencourage a user to interact with the advertisement displayed on thedisplay device by reducing a perceived coefficient of friction, or anegative haptic effect configured to discourage the user frominteracting with the advertisement by increasing the perceivedcoefficient of friction, and wherein the positive haptic effect isoutput based on at least part of the advertisement being moved in afirst direction and the negative haptic effect is output based on atleast part of the advertisement being moved in a second direction thatis different from the first direction.
 16. The method of claim 15,wherein the input comprises a gesture.
 17. The method of claim 15,wherein the hedonic haptic effect is the positive haptic effect.
 18. Themethod of claim 15, wherein the hedonic haptic effect is the negativehaptic effect.
 19. The method of claim 15, wherein the hedonic hapticeffect provides pseudo-force feedback such that increased effort isrequired to complete an action.
 20. The method of claim 19, wherein thehedonic haptic effect is configured to indicate a direction of movementdifferent than a detected movement.